package main

import (
	"fmt"
	"sync"
)

func main() {
	once := sync.Once{}

	// 只会执行一次，里面有个done.初始值为0，当且仅当为0时执行方法，执行一次变成1，
	once.Do(func() { fmt.Println("1") })
	once.Do(func() { fmt.Println("1") })
	once.Do(func() { fmt.Println("1") })
	once.Do(func() { fmt.Println("1") })
}
